#ifndef LIST_H
#define LIST_H

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

typedef struct {
  int *arr; // 用数组来存储元素
  int length;
  int capacity; // 列表容量
  int ratio; // 扩容倍率
} List; // 类似与python列表

List *init_list(int *nums, int len); // 初始化
int get_length(List *list); // 获取长度
int get_capacity(List *list); // 获取容量
void print_list(List *list); // 打印列表
void extend_list(List *list); // 扩容
void insert_elem(List *list, int index, int value); // 插入元素
void append_elem(List *list, int value); // 追加元素
int pop_elem(List *list, int index); // 删除元素

#endif